package com.ihr360.attendance;


import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

import java.io.Serializable;

/**
 * 考勤数据固定字段部分
 */
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AttendanceReportFixedPart implements Serializable {
    public final static class Field {
        /**
         * 实际出勤天数（工作天数）
         */
        public static final String WORKING_DAYS = "workingdays";
        /**
         * 应出勤天数（不包含节假日）
         */
        public static final String SUPPOSED_WORKING_DAYS = "supposedworkingdays";

        /**
         * 月计薪天数（本人月计薪天数，包含方节假日）
         */
        public static final String PAID_DAYS = "paiddays";

        /**
         *  缺勤次数
         * */
        public static final String ABSENCE_FROM_DUTY_DAYS = "absencefromdutydays";

        /**
         * 非在职计薪天数
         * */
        public static final String NON_WORKING_DAYS = "nonWorkingDays";

//        /**
//         * 月计薪天数（包含节假日，23）
//         */
//        public static final String MONTH_PAID_DAYS = "monthpaiddays";

        /**
         * 平日加班小时-标准
         */
        public static final String OT_HOURS_150 = "othours150";
        /**
         * 周末加班小时-标准
         */
        public static final String OT_HOURS_200 = "othours200";
        /**
         * 节假日加班小时-标准
         */
        public static final String OT_HOURS_300 = "othours300";


        /**
         * 工作日加班累计（小时）
         */
        public static final String WORKINGDAY_OVERTIME_CAL = "workingdayovertimecal";
        /**
         * 休息日加班累计（小时）
         */
        public static final String RESTDAY_OVERTIME_CAL = "restdayovertimecal";
        /**
         * 节假日加班累计（小时）
         */
        public static final String HOLIDAY_OVERTIME_CAL = "holidayovertimecal";

        /**
         * 扣薪病假时长
         */
        public static final String SICK_LEAVE_COUNT = "sickleavecnt";

        /**
         * 全薪病假时长
         */
        //public static final String PAY_SICK_LEAVE_COUNT = "paysickleavecnt";

        /**
         * 事假时长
         */
        public static final String UNPAID_LEAVE_COUNT = "unpaidleavecnt";
        /**
         * 产假时长
         */
        public static final String MATERNITY_COUNT = "maternitycnt";


        /**
         * 工时调整-综合
         */
        public static final String SYNTHETICAL_ADJUST = "syntheticaladjust";

        /**
         * 节假日加班小时-综合
         */
        public static final String SYNTHETICAL_OTHOURS_300 = "syntheticalothours300";
        /**
         * 月工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURMONTH = "syntheticalworkhourmonth";
        /**
         * 季工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURQUARTER = "syntheticalworkhourquarter";
        /**
         * 年工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURYEAR = "syntheticalworkhouryear";
        /**
         * 年假时长
         */
        public static final String ANNUAL_LEAVETIME = "annualleavetime";
        /**
         * 调休时长
         */
        public static final String REST_HOURS = "resthours";
        /**
         * 迟到次数
         */
        public static final String LATE_ARRIVALS = "latearrivals";
        /**
         * 早退次数
         */
        public static final String RETURN_EARLY = "returnearly";

        /**
         *  签到遗漏次数（原始次数）
         * */
        public static final String SIGN_IN_MISS = "signinmiss";
        /**
         *  签退遗漏次数（原始次数）
         * */
        public static final String SIGN_OUT_MISS = "signoutmiss";
        /**
         *  累计迟到分钟数
         * */
        public static final String LATE_MINUTES = "lateminutes";

        /**
         *  累计早退分钟数
         * */
        public static final String EARLY_MINUTES = "earlyminutes";

        /**
         *  缺勤次数
         * */
        public static final String ABSENCE_FROM_DUTY = "absencefromduty";


    }

    public final static class FieldName {
        /**
         * 实际出勤天数（工作天数）
         */
        public static final String WORKING_DAYS = "实际出勤天数";
        /**
         * 应出勤天数（不包含节假日）
         */
        public static final String SUPPOSED_WORKING_DAYS = "应出勤天数";

        /**
         * 月计薪天数（本人月计薪天数）
         */
        public static final String PAID_DAYS = "月计薪天数";

//
//        /**
//         * 月计薪天数（包含节假日，23）
//         */
//        public static final String MONTH_PAID_DAYS = "月计薪天数";

        /**
         * 平日加班小时-标准
         */
        public static final String OT_HOURS_150 = "工作日加班";
        /**
         * 周末加班小时-标准
         */
        public static final String OT_HOURS_200 = "休息日加班";
        /**
         * 节假日加班小时-标准
         */
        public static final String OT_HOURS_300 = "节假日加班";


        /**
         * 工作日加班累计（小时）
         */
        public static final String WORKINGDAY_OVERTIME_CAL = "工作日加班累计";
        /**
         * 休息日加班累计（小时）
         */
        public static final String RESTDAY_OVERTIME_CAL = "休息日加班累计";
        /**
         * 节假日加班累计（小时）
         */
        public static final String HOLIDAY_OVERTIME_CAL = "节假日加班累计";

        /**
         * 扣薪病假时长
         */
        public static final String SICK_LEAVE_COUNT = "病假时长";

        /**
         * 全薪病假时长
         */
        //public static final String PAY_SICK_LEAVE_COUNT = "paysickleavecnt";

        /**
         * 事假时长
         */
        public static final String UNPAID_LEAVE_COUNT = "事假时长";
        /**
         * 产假时长
         */
        public static final String MATERNITY_COUNT = "产假时长";


        /**
         * 工时调整-综合
         */
        public static final String SYNTHETICAL_ADJUST = "工时调整";

        /**
         * 节假日加班小时-综合
         */
        public static final String SYNTHETICAL_OTHOURS_300 = "节假日加班小时-综合";
        /**
         * 月工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURMONTH = "月工作日工时-综合";
        /**
         * 季工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURQUARTER = "季工作日工时-综合";
        /**
         * 年工作日工时-综合
         */
        public static final String SYNTHETICAL_WORKHOURYEAR = "年工作日工时-综合";
        /**
         * 年假时长
         */
        public static final String ANNUAL_LEAVETIME = "年假时长";
        /**
         * 调休时长
         */
        public static final String REST_HOURS = "调休时长";
        /**
         * 迟到次数
         */
        public static final String LATE_ARRIVALS = "迟到次数";
        /**
         * 早退次数
         */
        public static final String RETURN_EARLY = "早退次数";

        /**
         *  签到遗漏次数（原始次数）
         * */
        public static final String SIGN_IN_MISS = "签到遗漏次数";
        /**
         *  签退遗漏次数（原始次数）
         * */
        public static final String SIGN_OUT_MISS = "签退遗漏次数";
        /**
         *  累计迟到分钟数
         * */
        public static final String LATE_MINUTES = "累计迟到分钟数";

        /**
         *  累计早退分钟数
         * */
        public static final String EARLY_MINUTES = "累计早退分钟数";

        /**
         *  缺勤次数
         * */
        //public static final String ABSENCE_FROM_DUTY = "缺勤次数";

        /**
         *  缺勤次数
         * */
        public static final String ABSENCE_FROM_DUTY_DAYS = "缺勤次数";

        /**
         * 非在职计薪天数
         * */
        public static final String NON_WORKING_DAYS = "非在职计薪天数";

    }

    /**
     * 实际出勤天数（工作天数）
     */
    private double workingdays;
    /**
     * 应出勤天数（不包含节假日）
     */
    private double supposedworkingdays;

    /**
     * 月计薪天数（本人）
     */
    private double paiddays;

    /**
     *  缺勤天数
     * */
    private double absencefromdutydays;

    /**
     * 非在职计薪天数
     * */
    private double nonWorkingDays;


    /**
     * 平日加班小时-标准
     */
    private double othours150;
    /**
     * 周末加班小时-标准
     */
    private double othours200;
    /**
     * 节假日加班小时-标准
     */
    private double othours300;

    /**
     * 工作日加班累计（小时）
     */
    private double workingdayovertimecal;
    /**
     * 休息日加班累计（小时）
     */
    private double restdayovertimecal;
    /**
     * 节假日加班累计（小时）
     */
    private double holidayovertimecal;

    /**
     * 扣薪病假时长
     */
    private double sickleavecnt;

    /**
     * 全薪病假时长
     */
    //private double paysickleavecnt;

    /**
     * 事假时长
     */
    private double unpaidleavecnt;
    /**
     * 产假时长
     */
    private double maternitycnt;


    /**
     * 工时调整-综合
     */
    private double syntheticaladjust;

    /**
     * 节假日加班小时-综合
     */
    private double syntheticalothours300;
    /**
     * 月工作日工时-综合
     */
    private double syntheticalworkhourmonth;
    /**
     * 季工作日工时-综合
     */
    private double syntheticalworkhourquarter;
    /**
     * 年工作日工时-综合
     */
    private double syntheticalworkhouryear;

    /**
     * 年假时长
     */
    private double annualleavetime;

    /**
     * 调休时长
     */
    private double resthours;

    /**
     * 迟到次数（原始次数）
     */
    private double latearrivals;

    /**
     * 早退次数（原始次数）
     */
    private double returnearly;

    /**
     *  签到遗漏次数（原始次数）
     * */
    private double signinmiss;
    /**
     *  签退遗漏次数（原始次数）
     * */
    private double signoutmiss;
    /**
     *  累计迟到分钟数
     * */
    private double lateminutes;

    /**
     *  累计早退分钟数
     * */
    private double earlyminutes;

    /**
     *  缺勤次数
     * */
    private double absencefromduty;



}